package com.symaster.common.swing.element.list;

import javax.swing.*;
import java.awt.*;
import java.util.UUID;

/**
 * @author MGZC
 * @time 2021/8/24 21:53
 */
public abstract class SwingListAbs extends JPanel {

    private final String uuid;

    public SwingListAbs() {
        uuid = UUID.randomUUID().toString();
    }

    public SwingListAbs(String uuid) {
        this.uuid = uuid;
    }

    public String getUuid() {
        return uuid;
    }

    public Integer getParentHeight() {
        return getParent().getHeight();
    }

    public void setParentHeight() {
        getParent().setPreferredSize(new Dimension(getParent().getWidth(), getParent().getHeight()));
    }

    /**
     * 选择当前控件
     */
    public void select() {
        SwingListPanel parent = getParent();
        parent.select(this.getUuid());
    }

    /**
     * 调用自定义事件
     */
    public void otherListener() {
        SwingListPanel parent = getParent();
        parent.otherListener(this);
    }

    /**
     * 当前元素被选择事件
     */
    public void selectListener() {
    }

    /**
     * 当前元素被取消选择事件
     */
    public void oldSelectListener() {
    }

    /**
     * 获取所在index
     */
    public int getIndex() {
        return SwingUtilities.getAccessibleIndexInParent(this);
    }

    /**
     * 返回父组件
     */
    public SwingListPanel getParent() {
        return (SwingListPanel) super.getParent();
    }

    /**
     * 列表长度发生改变
     */
    public void listLengthAlterListener(int newSize) {

    }
}
